<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Subroutines.html">
<link rel="next" href="Target.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Commands" rel="Chapter" href="Commands.html">
<link title="Declaration" rel="Chapter" href="Declaration.html">
<link title="Exceptions" rel="Chapter" href="Exceptions.html">
<link title="Expressions" rel="Chapter" href="Expressions.html">
<link title="Intermediate" rel="Chapter" href="Intermediate.html">
<link title="Lexer" rel="Chapter" href="Lexer.html">
<link title="Main" rel="Chapter" href="Main.html">
<link title="Parser" rel="Chapter" href="Parser.html">
<link title="Print" rel="Chapter" href="Print.html">
<link title="Print_syntaxtree" rel="Chapter" href="Print_syntaxtree.html">
<link title="Semantic" rel="Chapter" href="Semantic.html">
<link title="Subroutines" rel="Chapter" href="Subroutines.html">
<link title="Syntaxtree" rel="Chapter" href="Syntaxtree.html">
<link title="Target" rel="Chapter" href="Target.html"><title>Syntaxtree</title>
</head>
<body>
<div class="navbar"><a href="Subroutines.html">Previous</a>
&nbsp;<a href="index.html">Up</a>
&nbsp;<a href="Target.html">Next</a>
</div>
<center><h1>Module <a href="type_Syntaxtree.html">Syntaxtree</a></h1></center>
<br>
<pre><span class="keyword">module</span> Syntaxtree: <code class="code">sig</code> <a href="Syntaxtree.html">..</a> <code class="code">end</code></pre><hr width="100%">
<br><code><span class="keyword">type</span> <a name="TYPEide"></a><code class="type"></code>ide = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Ide</span> <span class="keyword">of</span> <code class="type">string</code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEaexp"></a><code class="type"></code>aexp = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">N</span> <span class="keyword">of</span> <code class="type">int</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">R</span> <span class="keyword">of</span> <code class="type">float</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Var</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Vec</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Mat</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Sum</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Sub</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Mul</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Div</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">FCall</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a> list</code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEbexp"></a><code class="type"></code>bexp = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">B</span> <span class="keyword">of</span> <code class="type">bool</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Equ</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">LE</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">LT</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Not</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEbexp">bexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">And</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEbexp">bexp</a> * <a href="Syntaxtree.html#TYPEbexp">bexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Or</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEbexp">bexp</a> * <a href="Syntaxtree.html#TYPEbexp">bexp</a></code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPElexp"></a><code class="type"></code>lexp = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">LVar</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">LVec</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">LMat</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEcmd"></a><code class="type"></code>cmd = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Ass</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPElexp">lexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Blk</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEcmd">cmd</a> list</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Ite</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEbexp">bexp</a> * <a href="Syntaxtree.html#TYPEcmd">cmd</a> * <a href="Syntaxtree.html#TYPEcmd">cmd</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">While</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEbexp">bexp</a> * <a href="Syntaxtree.html#TYPEcmd">cmd</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Repeat</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEcmd">cmd</a> * <a href="Syntaxtree.html#TYPEbexp">bexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">For</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a> * <a href="Syntaxtree.html#TYPEcmd">cmd</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Write</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEaexp">aexp</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">PCall</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEaexp">aexp</a> list</code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEbType"></a><code class="type"></code>bType = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Int</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Float</span></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEgType"></a><code class="type"></code>gType = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Basic</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEbType">bType</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Vector</span> <span class="keyword">of</span> <code class="type">int * <a href="Syntaxtree.html#TYPEbType">bType</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Matrix</span> <span class="keyword">of</span> <code class="type">int * int * <a href="Syntaxtree.html#TYPEbType">bType</a></code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEdec"></a><code class="type"></code>dec = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Dec</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEgType">gType</a></code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEparam"></a><code class="type"></code>param = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Par</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEbType">bType</a></code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEret"></a><code class="type"></code>ret = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Ret</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEbType">bType</a></code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEproc"></a><code class="type"></code>proc = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Proc</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEparam">param</a> list * <a href="Syntaxtree.html#TYPEdec">dec</a> list * <a href="Syntaxtree.html#TYPEcmd">cmd</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Func</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEide">ide</a> * <a href="Syntaxtree.html#TYPEparam">param</a> list * <a href="Syntaxtree.html#TYPEret">ret</a> * <a href="Syntaxtree.html#TYPEdec">dec</a> list<br>        * <a href="Syntaxtree.html#TYPEcmd">cmd</a></code></code></td>

</tr></table>


<br><code><span class="keyword">type</span> <a name="TYPEprogram"></a><code class="type"></code>program = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Program</span> <span class="keyword">of</span> <code class="type"><a href="Syntaxtree.html#TYPEdec">dec</a> list * <a href="Syntaxtree.html#TYPEproc">proc</a> list * <a href="Syntaxtree.html#TYPEcmd">cmd</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">SynError</span></code></td>

</tr></table>


</body></html>